package com.zjsru.plan2025.oneday;


import java.util.HashMap;
import java.util.Map;

/**
 * 1742. 盒子中小球的最大数量
 *
 * @Author: cookLee
 * @Date: 2025-02-15
 */
public class CountBalls {

    /**
     * 主
     * 编号从 lowLimit 开始，到 highLimit 结束（包括 lowLimit 和 highLimit ，即 n == highLimit - lowLimit + 1）
     * \
     * 输入：lowLimit = 1, highLimit = 10
     * 输出：2
     * 解释：
     * 盒子编号：1 2 3 4 5 6 7 8 9 10 11 ...
     * 小球数量：2 1 1 1 1 1 1 1 1 0  0  ...
     * 编号 1 的盒子放有最多小球，小球数量为 2 。
     * \
     * 输入：lowLimit = 5, highLimit = 15
     * 输出：2
     * 解释：
     * 盒子编号：1 2 3 4 5 6 7 8 9 10 11 ...
     * 小球数量：1 1 1 1 2 2 1 1 1 0  0  ...
     * 编号 5 和 6 的盒子放有最多小球，每个盒子中的小球数量都是 2
     * \
     *
     * @param args args
     */
    public static void main(String[] args) {
        CountBalls countBits = new CountBalls();
        int lowLimit = 1;
        int highLimit = 10;
        System.out.println(countBits.countBalls(lowLimit, highLimit));
    }

    public int countBalls(int lowLimit, int highLimit) {
        Map<Integer, Integer> map = new HashMap<>();
        for (int i = lowLimit; i <= highLimit; i++) {
            //每位和计数
            int sum = 0;
            int num = i;
            while (num > 0) {
                sum += num % 10;
                num /= 10;
            }
            map.put(sum, map.getOrDefault(sum, 0) + 1);
        }
        return map.values().stream().max(Integer::compareTo).get();
    }

}
